package com.xinqi.modules.prepare.common.service;

import com.xinqi.modules.prepare.common.dto.data.*;
import com.xinqi.modules.prepare.common.dto.input.PrepareImportCreateDTO;
import org.springframework.transaction.annotation.Transactional;

import javax.validation.Valid;

/**
 * 备课区导入服务，课程 -> 备课区
 *
 * @author linkai
 * @date 2023/3/20
 */
public interface PrepareImportService {

    /**
     * 导入互动课件
     */
    Long importCourseware(PrepareCoursewareData data);

    /**
     * 导入互动课件
     */
    @Transactional(rollbackFor = Exception.class)
    Long cascadeImportCourseware(@Valid PrepareImportCreateDTO dto);

    /**
     * 导入互动视频
     */
    Long importVideo(PrepareVideoData data);

    /**
     * 导入互动视频
     */
    Long cascadeImportVideo(@Valid PrepareImportCreateDTO dto);

    /**
     * 导入资料
     */
    Long importStudyData(PrepareDataData data);

    /**
     * 导入作业
     */
    Long importHomework(PrepareHomeworkData data);

    /**
     * 导入测评
     */
    Long importExamPaper(PrepareExamPaperData data);

    /**
     * 导入测评
     */
    Long cascadeImportExamPaper(PrepareImportCreateDTO dto);

    /**
     * 导入讨论
     */
    Long importDiscuss(PrepareDiscussData data);

    /**
     * 导入讨论
     */
    Long importNotice(PrepareNoticeData data);

    /**
     * 导入题目
     */
    Long importQuestion(PrepareQuestionBankData data);

}
